﻿namespace Algorithm.LeetCode
{
    /// <summary>
    /// 第二十八题：实现 strStr()
    /// </summary>
    public class No28
    {
        /*
         * 实现 strStr() 函数。
         * 
         * 给你两个字符串 haystack 和 needle ，请你在 haystack 字符串中找出 needle 字符串出现的第一个位置（下标从 0 开始）。如果不存在，则返回  -1 。
         */


        public static int StrStr(string haystack, string needle)
        {
            if (string.IsNullOrEmpty(needle))
            {
                return 0;
            }
            for (var i = 0; i < haystack.Length; i++)
            {
                if (haystack[i] == needle[0])
                {
                    var flag = true;
                    for (int j = 1; j < needle.Length; j++)
                    {
                        if (haystack.Length <= j + i || haystack[j + i] != needle[j])
                        {
                            flag = false;
                            break;
                        }
                    }
                    if (flag)
                    {
                        return i;
                    }
                }
            }
            return -1;
        }
    }
}
